Meteor Methods হলো এমন ফাংশন বা মেথড যা সার্ভার এবং ক্লায়েন্টের মধ্যে ইন্টারঅ্যাকশন করতে ব্যবহৃত হয়। এটি মূলত ডেটা বা অ্যাকশন ক্লায়েন্ট থেকে সার্ভারে পাঠানোর জন্য ব্যবহার হয়, যা সার্ভার সাইডে প্রক্রিয়া করা হয় এবং তারপর আবার ক্লায়েন্টে ফলাফল পাঠানো হয়। Meteor-এ মেথড ব্যবহার করার মাধ্যমে আপনি নিরাপত্তা, ডেটা ভ্যালিডেশন এবং সার্ভারের কার্যক্ষমতা উন্নত করতে পারেন।
Meteor Method তৈরি করা
Meteor.methods() ফাংশন ব্যবহার করে সার্ভারে একটি মেথড তৈরি করা যায়। এই মেথড সাধারণত ক্লায়েন্ট থেকে ডেটা গ্রহণ করে এবং এটি প্রক্রিয়া করে এবং এর ফলাফল ক্লায়েন্টে ফিরিয়ে দেয়।
Meteor Method এর উদাহরণ:
ধরা যাক, আপনি একটি ফর্ম তৈরি করেছেন যেখানে ব্যবহারকারী তাদের নাম ও ইমেইল পাঠাবে। সেই ডেটা সার্ভারে প্রক্রিয়া করা এবং MongoDB-তে সঞ্চয় করার জন্য একটি মেথড তৈরি করা হবে।
1. Meteor Method তৈরি করা
// server/main.js
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
// একটি MongoDB কোলেকশন তৈরি করা
export const Users = new Mongo.Collection('users');
Meteor.methods({
'users.insert': function (name, email) {
// সার্ভারে ব্যবহারকারীর ডেটা ইনসার্ট করা
check(name, String);
check(email, String);
// MongoDB তে ডেটা ইনসার্ট
Users.insert({
name: name,
email: email,
createdAt: new Date(),
});
}
});
এখানে 'users.insert' মেথডটি একটি নতুন ব্যবহারকারীকে MongoDB কোলেকশনে ইনসার্ট করার জন্য তৈরি করা হয়েছে। check() ফাংশনটি name এবং email ফিল্ডগুলির ডেটা টাইপ চেক করতে ব্যবহার করা হয়েছে।
2. Meteor Method কল করা (Client Side)
Meteor.call() ফাংশন ব্যবহার করে ক্লায়েন্ট সাইড থেকে সার্ভার সাইড মেথড কল করা যায়।
// client/main.js
Template.body.events({
'submit #user-form': function (event) {
event.preventDefault();
// ফর্ম থেকে ইনপুট ফিল্ডগুলির মান সংগ্রহ করা
const name = event.target.name.value;
const email = event.target.email.value;
// Meteor method কল করা
Meteor.call('users.insert', name, email, function (error, result) {
if (error) {
console.log('Error:', error.reason);
} else {
console.log('User inserted successfully');
}
});
// ফর্মের ইনপুট ফিল্ডগুলো ক্লিয়ার করা
event.target.name.value = '';
event.target.email.value = '';
}
});
এখানে, যখন ব্যবহারকারী ফর্ম সাবমিট করেন, তখন Meteor.call() ফাংশনের মাধ্যমে 'users.insert' মেথড কল করা হচ্ছে। মেথডটি সার্ভারে গিয়ে ডেটা প্রক্রিয়া করবে এবং ডাটাবেসে সঞ্চয় করবে।
Meteor Method এর সুবিধা:
- নিরাপত্তা:
Meteor মেথড ক্লায়েন্ট সাইডে সরাসরি ডেটাবেস বা সিস্টেম অ্যাক্সেস করতে না দেয়, বরং এটি সার্ভারে থাকে, যেখানে নিরাপত্তা ব্যবস্থাপনা করা সহজ। - ডেটা ভ্যালিডেশন:
Meteor মেথডের মধ্যে আপনি ইনপুট ডেটা ভ্যালিডেশন করতে পারেন, যাতে ডেটা নিরাপদ এবং সঠিক হয়। উদাহরণস্বরূপ, check() ফাংশন ব্যবহার করে ডেটার ধরন চেক করা যেতে পারে। - অথেনটিকেশন এবং অথোরাইজেশন:
Meteor মেথডে this.userId ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে শুধুমাত্র লগইন করা ব্যবহারকারীরা মেথডটি কল করতে পারে। এছাড়া, আপনি role-based access control (RBAC) দিয়ে মেথডে অ্যাক্সেস কন্ট্রোল করতে পারেন।
Meteor Method নিরাপত্তা
Meteor মেথডের সাথে নিরাপত্তা নিশ্চিত করা গুরুত্বপূর্ণ, যাতে সার্ভারের মেথডগুলিতে অবৈধ অ্যাক্সেস না হয়। এটি করার জন্য:
অথেনটিকেশন:
ব্যবহারকারীদের লগইন অবস্থান চেক করতে this.userId ব্যবহার করুন। উদাহরণ:'users.insert': function (name, email) { if (!this.userId) { throw new Meteor.Error('not-authorized'); } // ডেটা ইনসার্ট করার কোড }ডেটা ভ্যালিডেশন:
check() ফাংশন ব্যবহার করে ইনপুট ডেটার ধরন চেক করুন, যেমন:check(name, String); check(email, String);- রোল ভিত্তিক এক্সেস কন্ট্রোল:
আপনি Meteor.users.findOne() ব্যবহার করে ব্যবহারকারীর রোল চেক করে তাদের কার্যকলাপ নিয়ন্ত্রণ করতে পারেন।
Meteor Method কল করে সার্ভার থেকে ডেটা ফেচ করা
আপনি Meteor.methods() ফাংশনের মাধ্যমে শুধু ডেটা ইনসার্টই নয়, সার্ভার থেকে ডেটা ফেচ করতেও ব্যবহার করতে পারেন।
// server/main.js
Meteor.methods({
'users.fetch': function() {
return Users.find().fetch();
}
});
এখন, ক্লায়েন্ট থেকে এই মেথডটি কল করে সমস্ত ব্যবহারকারীর ডেটা আনতে পারেন।
// client/main.js
Meteor.call('users.fetch', function(error, result) {
if (error) {
console.log('Error fetching users:', error);
} else {
console.log('Fetched users:', result);
}
});
সারাংশ
Meteor Methods সার্ভার এবং ক্লায়েন্টের মধ্যে ইন্টারঅ্যাকশন করার একটি শক্তিশালী উপায়। এটি ব্যবহারকারীর ডেটা ইনপুট, প্রক্রিয়া এবং MongoDB তে সঞ্চয় করার জন্য ব্যবহৃত হয়। Meteor মেথডের মাধ্যমে আপনি নিরাপত্তা, ডেটা ভ্যালিডেশন এবং অথেনটিকেশন নিয়ন্ত্রণ করতে পারেন। Meteor এর মেথড ব্যবহারের মাধ্যমে ক্লায়েন্ট থেকে সার্ভার সাইড কার্যক্রম সহজেই পরিচালনা করা সম্ভব।
Read more